package cn.seocoo.platform.information.service.impl;

import java.util.List;

import cn.seocoo.platform.information.dto.InformationDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import cn.seocoo.platform.information.mapper.InformationMapper;
import cn.seocoo.platform.information.domain.Information;
import cn.seocoo.platform.information.service.IInformationService;
import cn.seocoo.platform.common.core.text.Convert;

/**
 * 消息 服务层实现
 * 
 * @author wujian
 * @date 2019-12-26
 */
@Service
public class InformationServiceImpl implements IInformationService
{
	@Autowired
	private InformationMapper informationMapper;

	/**
     * 查询消息信息
     * 
     * @param id 消息ID
     * @return 消息信息
     */
    @Override
	public Information selectInformationById(Integer id)
	{
	    return informationMapper.selectInformationById(id);
	}
	
	/**
     * 查询消息列表
     * 
     * @param information 消息信息
     * @return 消息集合
     */
	@Override
	public List<Information> selectInformationList(Information information)
	{
	    return informationMapper.selectInformationList(information);
	}
	
    /**
     * 新增消息
     * 
     * @param information 消息信息
     * @return 结果
     */
	@Override
	public int insertInformation(Information information)
	{
	    return informationMapper.insertInformation(information);
	}
	
	/**
     * 修改消息
     * 
     * @param information 消息信息
     * @return 结果
     */
	@Override
	public int updateInformation(Information information)
	{
	    return informationMapper.updateInformation(information);
	}

	/**
     * 删除消息对象
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	@Override
	public int deleteInformationByIds(String ids)
	{
		return informationMapper.deleteInformationByIds(Convert.toStrArray(ids));
	}

	/**
	 * @Author WuJian
	 * @Description 获取用户消息列表
	 * @Date 9:35 2019/12/26
	 * @Param [appUserId]
	 * @return java.util.List<cn.seocoo.platform.information.dto.InformationDto>
	 **/
	@Override
	public List<InformationDto> getInfoListByAppUserId(Integer appUserId) {
		return informationMapper.getInfoListByAppUserId(appUserId);
	}

	/**
	 * @Author WuJian
	 * @Description //获取消息
	 * @Date 9:56 2019/12/26
	 * @Param [id]
	 * @return cn.seocoo.platform.information.dto.InformationDto
	 **/
	@Override
	public InformationDto getInfoById(Integer id) {
		return informationMapper.getInfoById(id);
	}


	@Override
	@Async
	public void updateInformationForRead(Integer id) {
		informationMapper.updateInformationForRead(id);
	}

	/**
	 * @Author WuJian
	 * @Description //查询未读的消息数量
	 * @Date 10:37 2020/1/6
	 * @Param [appUserId]
	 * @return java.lang.Integer
	 **/
	@Override
	public Integer getCountByUserId(Integer appUserId) {
		return informationMapper.getCountByUserId(appUserId);
	}

}
